package com.lucifer.treasure.registry;

import net.minecraft.item.Item;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.util.Identifier;

/**
 * 路西法的宝藏模组的自定义标签注册类
 * 
 * 用于集中管理所有自定义标签，确保标签被正确定义和引用
 */
public class LuciferTreasureTags {
    
    /**
     * 物品标签
     */
    public static class Items {
        
        /**
         * 附魔相关的物品标签
         */
        public static class Enchantable {
            
            /**
             * 创建附魔物品标签的辅助方法
             * @param name 标签名称
             * @return TagKey<Item>
             */
            private static TagKey<Item> enchantableTag(String name) {
                return TagKey.of(RegistryKeys.ITEM, Identifier.of("lucifer_treasure", name));
            }
            
            /**
             * 御剑术附魔支持的物品标签
             * 
             * 包含：
             * - 所有武器类型 (#minecraft:enchantable/weapon)
             * - 三叉戟 (#minecraft:enchantable/trident)  
             * - 弓弩 (#minecraft:enchantable/bow, #minecraft:enchantable/crossbow)
             * - 钓鱼竿 (#minecraft:enchantable/fishing)
             * - 工具 (#minecraft:enchantable/mining)
             * - 盔甲 (#minecraft:enchantable/armor)
             * - 特殊物品 (stick, arrow, compass等)
             */
            public static final TagKey<Item> SWORD_AURA_ENCHANTABLE = enchantableTag("sword_aura_enchantable");
        }
    }
    
    /**
     * 初始化所有标签
     * 这个方法在模组初始化时调用，确保所有标签被正确注册
     */
    public static void initialize() {
        // 静态初始化所有标签常量
        // 这确保了标签在游戏启动时就被正确注册
    }
} 